package exam.exam02;

import java.util.HashMap;

public class VendingMachine {
    //属性有机器名称、饮料列表（HashMap<String, Float>）、机内剩余现金总额（float类型）
    private String name;
    private HashMap<String, Float> drinkList;
    private float leftMoney;

    /*    VendingMachine类中定义购买饮料的方法：
                * 		传入钞票和饮料名称后，需要判断传入的钞票是否为真、
        面值是否足够购买此类饮料；若不符合购买条件给出错误提示，结束购买流程；
                * 		若购买成功后需打印出找零金额和目前机内现金总额；*/
    public void buyDrik(Money money, String drinkName) {
        if (!drinkList.containsKey(drinkName)) {
            System.out.println("对不起没有这种饮料！");
            return;
        }
        if (money.isIsfake() == false) {
            System.out.println("对不起你的是假钞！");
            return;
        }
        if (money.getValue() < drinkList.get(drinkName)) {
            System.out.println("对不起你的钱不够！");
            return;
        }
        if (money.getValue() - drinkList.get(drinkName) > getLeftMoney()) {
            System.out.println("对不起机器里面的零钱不够找零！");
            return;
        }
        float change = money.getValue() - drinkList.get(drinkName);
        setLeftMoney(getLeftMoney() - change);
        System.out.println(drinkName + ":购买成功");
        System.out.println("找零金额:" + change + "和目前机内现金总额:" + (getLeftMoney()));

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public HashMap<String, Float> getDrinkList() {
        return drinkList;
    }

    public void setDrinkList(HashMap<String, Float> drinkList) {
        this.drinkList = drinkList;
    }

    public float getLeftMoney() {
        return leftMoney;
    }

    public void setLeftMoney(float leftMoney) {
        this.leftMoney = leftMoney;
    }

    public VendingMachine(String name, HashMap<String, Float> drinkList, float leftMoney) {
        this.name = name;
        this.drinkList = drinkList;
        this.leftMoney = leftMoney;
    }

    public VendingMachine() {
    }
}
